﻿Public Class frm_Acceso
    Enum estado
        insertar
        modificar
    End Enum
    Enum termino
        aprobado
        rechazado
    End Enum

    Dim accion As estado = estado.insertar
    Dim acceso As acceso_a_datos

    Private Sub Acceso_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        acceso = New acceso_a_datos()
        If es_primer_acceso() = True Then
            If MessageBox.Show("No existen Encargados registrados, Desea Crear uno?", "Atencion", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1) = Windows.Forms.DialogResult.Yes Then
                hacer_primer_acceso(sender, e)
            Else
                Close()
            End If
        End If
    End Sub

    Private Function validar(ByVal sender As System.Object, ByVal e As System.EventArgs) As Boolean

        If Me.txt_usuario.Text = "" Then
            MessageBox.Show("Tenes que completar el campo Usuario", "Importante", MessageBoxButtons.OK, MessageBoxIcon.Information)
            Me.txt_usuario.Focus()
            Return False
        End If

        If Me.masktxt_contraseña.Text = "" Then
            MessageBox.Show("Tenes que completar el campo contraseña", "Importante", MessageBoxButtons.OK, MessageBoxIcon.Information)
            Me.masktxt_contraseña.Focus()
            Return False
        End If

        Return True
    End Function

    Private Sub btn_ingresar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_ingresar.Click
        acceso._tabla = "Empleado"
        Dim tabla As New Data.DataTable
        Dim consulta As String = ""

        If Me.validar(sender, e) = True Then
            'Consulta para seleccionar el registro que cumpla con el criterio.
            consulta = "SELECT nombre_Usuario FROM Empleado "
            consulta += "WHERE (nombre_Usuario LIKE '" & Me.txt_usuario.Text & "'"
            consulta += " AND contraseña_Usuario=HASHBYTES('SHA1', '" & Me.masktxt_contraseña.Text & "'))"

            tabla = acceso._consulta(consulta)

            If tabla.Rows.Count = 1 Then
                frm_Acceso_Concedido._Nombre = txt_usuario.Text.ToLower
                frm_Acceso_Concedido.Show()
            Else
                frm_Acceso_Denegado.Show()
            End If
        End If
    End Sub

    'Boton Salir
    Private Sub btn_salir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_salir.Click
        frm_Salir.ShowDialog()
    End Sub

    Private Sub lbl_olvideContra_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lbl_olvideContra.Click
        Me.txt_usuario.Text = ""
        Me.masktxt_contraseña.Text = ""
        frm_olvide_Constraseña.Show()
        Me.Hide()
    End Sub

    'para ingresar con enter sin tener que hacer click en el boton
    Private Sub masktxt_contraseña_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles masktxt_contraseña.KeyPress
        If Asc(e.KeyChar) = 13 Then
            btn_ingresar_Click(sender, e)
        End If
    End Sub

    'Funcion que comprueba si se accede por primera vez al sistema (si no hay empleados cargados)
    Private Function es_primer_acceso() As Boolean

        Dim tabla As New Data.DataTable
        Dim txt_sql As String = ""
        Dim resul As Boolean = False

        txt_sql = "SELECT *"
        txt_sql += " FROM Empleado"

        tabla = acceso._consulta(txt_sql)

        If tabla.Rows.Count = 0 Then
            resul = True
        End If

        Return resul

    End Function

    Private Sub hacer_primer_acceso(ByVal sender As System.Object, ByVal e As System.EventArgs)
        frm_Empleados._primer_acceso = True
        frm_Empleados.ShowDialog()
    End Sub

    Private Sub frm_Acceso_FormClosed(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles MyBase.FormClosed
        Dispose()
    End Sub

    'Private Sub txt_usuario_Leave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txt_usuario.Leave
    '    If txt_usuario.Text = "" And btn_salir.Focused = False Then
    '        lbl_usuario_obligatorio.Visible = True
    '    Else
    '        lbl_usuario_obligatorio.Visible = False
    '    End If
    'End Sub

    'Private Sub masktxt_contraseña_Leave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles masktxt_contraseña.Leave
    '    If masktxt_contraseña.Text = "" And btn_salir.Focused = False Then
    '        lbl_contraseña_obligatorio.Visible = True
    '    Else
    '        lbl_contraseña_obligatorio.Visible = False
    '    End If
    'End Sub
    'Public Sub indicar_obligatorios(ByVal sender As System.Object, ByVal e As System.EventArgs)
    '    txt_usuario_Leave(sender, e)
    '    masktxt_contraseña_Leave(sender, e)
    'End Sub
End Class